import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/request';

export namespace DingdEmployeeInfoApi {
  /** 摩西员工信息信息 */
  export interface DingdEmployeeInfo {
    id: number; // 编号
    userid?: string; // 用户的userId
    unionid?: string; // 用户在当前开发者企业账号范围内的唯一标识
    name?: string; // 用户姓名
    avatar: string; // 头像
    stateCode: string; // 国际电话区号
    mobile: string; // 手机号码
    hideMobile: number; // 是否号码隐藏
    telephone: string; // 分机号
    jobNumber: string; // 员工工号
    title: string; // 职位
    email: string; // 		员工邮箱
    orgEmail: string; // 员工的企业邮箱
    workPlace: string; // 办公地点
    remark: string; // 备注
    deptIdList: string; // 所属部门id列表
    extension: string; // 扩展属性
    hiredDate: number; // 入职时间，Unix时间戳，单位毫秒
    active: number; // 是否激活了钉钉
    admin: number; // 是否为企业的管理员
    boss: number; // 是否为企业的老板
    leader: number; // 是否是部门的主管
    exclusiveAccount: number; // 是否企业账号
    empType: string; // 员工类型
    workComp: string; // 工作公司
    idCard: string; // 身份证号
    empStatus: string; // 员工状态
    probationPeriod: string; // 试用期
    regulaDate: number; // 转正时间，Unix时间戳，单位毫秒
    contractCode: string; // 合同编号
    contractType: string; // 合同类型
    contractStart: number; // 合同开始时间
    contractEnd: number; // 合同结束时间
    contractStatus: string; // 合同状态
    contractComp: string; // 合同公司
    contractValidPeriod: string; // 合同有效期
    contractSignDate: number; // 合同签订日期
  }
}

/** 查询摩西员工信息分页 */
export function getDingdEmployeeInfoPage(params: PageParam) {
  return requestClient.get<PageResult<DingdEmployeeInfoApi.DingdEmployeeInfo>>('/moxi/dingd-employee-info/page', { params });
}

/** 查询摩西员工信息详情 */
export function getDingdEmployeeInfo(id: number) {
  return requestClient.get<DingdEmployeeInfoApi.DingdEmployeeInfo>(`/moxi/dingd-employee-info/get?id=${id}`);
}

/** 新增摩西员工信息 */
export function createDingdEmployeeInfo(data: DingdEmployeeInfoApi.DingdEmployeeInfo) {
  return requestClient.post('/moxi/dingd-employee-info/create', data);
}

/** 修改摩西员工信息 */
export function updateDingdEmployeeInfo(data: DingdEmployeeInfoApi.DingdEmployeeInfo) {
  return requestClient.put('/moxi/dingd-employee-info/update', data);
}

/** 删除摩西员工信息 */
export function deleteDingdEmployeeInfo(id: number) {
  return requestClient.delete(`/moxi/dingd-employee-info/delete?id=${id}`);
}

/** 批量删除摩西员工信息 */
export function deleteDingdEmployeeInfoList(ids: number[]) {
  return requestClient.delete(`/moxi/dingd-employee-info/delete-list?ids=${ids.join(',')}`)
}

/** 导出摩西员工信息 */
export function exportDingdEmployeeInfo(params: any) {
  return requestClient.download('/moxi/dingd-employee-info/export-excel', params);
}


